from typing import TypedDict


class PartitionItem(TypedDict):
    name: str
    size: float
    used: float
    mount: str
    fs: str


class SMART_Attributes(TypedDict):
    smart_available: bool
    attributes: dict


class DiskItem(TypedDict):
    device: str  # PHYSICALDRIVE1、PHYSICALDRIVE2、/dev/sda、等
    model: str  # Seagate ZP1000GV30012
    size: float  # 1024GB
    used: float
    type: str  # SSD or HDD
    #interface: str  # SCSI
    partitions: list[PartitionItem]
    SMART: SMART_Attributes
